package net.servir.diagnostico.service.impl;


import java.util.List;

import net.servir.diagnostico.dao.DiagnosticoDAO;
import net.servir.diagnostico.model.IdentificacionParticipante;
import net.servir.diagnostico.model.Pregunta;
import net.servir.diagnostico.model.PreguntaEncuesta;
import net.servir.diagnostico.model.Resultado;
import net.servir.diagnostico.model.ResumenPreguntas;
import net.servir.diagnostico.model.Sistema;
import net.servir.diagnostico.model.Test;
import net.servir.diagnostico.model.TestGenerado;
import net.servir.diagnostico.service.DiagnosticoService;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class DiagnosticoServiceImpl implements DiagnosticoService {
	

	@Autowired
	private DiagnosticoDAO diagnosticoDAO;
	
	public Number obtenerIdTestActivo(Number idSistema)
	{
		return diagnosticoDAO.obtenerIdTestActivo(idSistema);
	}
	public Number verificarDisponibilidadTest(Number idTest)
	{
		return diagnosticoDAO.verificarDisponibilidadTest(idTest);	
	}
	
	public String validarParticipante(Number idTest,String dni,String clave)
	{
		return diagnosticoDAO.validarParticipante(idTest,dni,clave);
	}
	
	public IdentificacionParticipante getIdentificacionParticipante(Number idParticipante)
	{
		return diagnosticoDAO.getIdentificacionParticipante(idParticipante);
	}
	
	public Number obtenerSegundosRestantes(Number idTest,String tipo)
	{
		return diagnosticoDAO.obtenerSegundosRestantes(idTest,tipo);
	}

	public int obtenerFlagIntervaloTest(Number idTest)
	{
		return diagnosticoDAO.obtenerFlagIntervaloTest(idTest);
	}
	
	public void grabarRptaPregunta(String codSession,Number idTestGenerado, Number nroPregEval ,Number rptaPregEval, String ipSession)
	{
		diagnosticoDAO.grabarRptaPregunta(codSession,idTestGenerado, nroPregEval ,rptaPregEval, ipSession);
	}
	
	public Pregunta obtenerPregunta(Number idTestGenerado, Number nroPregunta)
	{
		return diagnosticoDAO.obtenerPregunta(idTestGenerado, nroPregunta);
	}
	
	public boolean esUltimaPregunta(Number idTestGenerado, Number nroPregunta)
	{
		return diagnosticoDAO.esUltimaPregunta(idTestGenerado, nroPregunta);
	}
	
	public Test obtenerTest(Number idTest)
	{
		return diagnosticoDAO.obtenerTest(idTest);
	}
	
	public void generarPrueba(Number idParticipante)
	{
		diagnosticoDAO.generarPrueba(idParticipante);
	}
	
	public ResumenPreguntas obtenerResumenPreguntas(Number idTestGenerado)
	{
		return diagnosticoDAO.obtenerResumenPreguntas(idTestGenerado);
	}
	
	public List<PreguntaEncuesta> obtenerPreguntasEncuesta(Number idParticipante)
	{
		return diagnosticoDAO.obtenerPreguntasEncuesta(idParticipante);
	}
	
	public Number getIdSistemaTest(Number idTest)
	{
		return diagnosticoDAO.getIdSistemaTest(idTest);
	}
	
	public Sistema getSistema(Number idSistema)
	{
		return diagnosticoDAO.getSistema(idSistema);
	}
	
	public void grabarEnvioPrueba(Number idTestGenerado)
	{
		diagnosticoDAO.grabarEnvioPrueba(idTestGenerado);
	}
	
	
	public List<Pregunta> obtenerPreguntasPorBanco(Number idBancoPregunta)
	{
		return diagnosticoDAO.obtenerPreguntasPorBanco(idBancoPregunta);
	}
	
	public void grabarRespuestaEncuesta(Number idParticipante,List<PreguntaEncuesta>preguntas)
	{
		diagnosticoDAO.grabarRespuestaEncuesta(idParticipante,preguntas);
	}
	public void grabarSugerenciaEncuesta(Number idParticipante,String sugerencia)
	{
		diagnosticoDAO.grabarSugerenciaEncuesta(idParticipante,sugerencia);
	}
	public void grabarNecesidad(Number idParticipante,String sugerencia)
	{
		diagnosticoDAO.grabarNecesidad(idParticipante,sugerencia);
	}

	public List<Resultado> obtenerResultados(Number idTestGenerado,boolean bReqCapacitacion)
	{
		return diagnosticoDAO.obtenerResultados(idTestGenerado,bReqCapacitacion);
	}

	public List<Resultado> obtenerResultadosRRHH(Number idTestGenerado,boolean bReqCapacitacion)
	{
		return diagnosticoDAO.obtenerResultadosRRHH(idTestGenerado,bReqCapacitacion);
	}

	public List<Resultado> obtenerResultadosRRHHResponsable(Number idTestGenerado,boolean bReqCapacitacion)
	{
		return diagnosticoDAO.obtenerResultadosRRHHResponsable(idTestGenerado,bReqCapacitacion);
	}

	
	public String obtenerPorcentajeAprob(Number idTestGenerado)
	{
		return diagnosticoDAO.obtenerPorcentajeAprob(idTestGenerado);
	}
	
	public void calcularPuntaje(Number idParticipante)
	{
		diagnosticoDAO.calcularPuntaje(idParticipante);
	}
	
	public String validarResultadoParticipante(Number idSistema,String dni,String clave)
	{
		return diagnosticoDAO.validarResultadoParticipante(idSistema,dni,clave);
	}
	
	public Number obtenerTestParticipante(Number idParticipante)
	{
		return diagnosticoDAO.obtenerTestParticipante(idParticipante);
	}
	public void registrarSesionParticipante(Number idParticipante,String codSesion)
	{
		diagnosticoDAO.registrarSesionParticipante(idParticipante,codSesion);
	}
	public void setAuditoria(String codSession, String ip, IdentificacionParticipante participante, String accion, Number cod_test) {
		diagnosticoDAO.setAuditoria(codSession, ip, participante, accion, cod_test);
		
	}
	public Integer obtenerRespondidas(
			Number idParticipante) {
		return diagnosticoDAO.obtenerRespondidas(idParticipante);
	}
	
	public TestGenerado getTestGenerado(Number idTestGenerado){
		return diagnosticoDAO.getTestGenerado(idTestGenerado);
	}
	public Number getSistemaTestActivo()
	{
		return diagnosticoDAO.getSistemaTestActivo();
	}
	public Number obtenerPuestoTipo(IdentificacionParticipante identParticipante) {
		return diagnosticoDAO.obtenerPuestoTipo(identParticipante);
	}
	public String obtenerPorcentajeAprobRRHH(Number idTestGenerado) {
		return diagnosticoDAO.obtenerPorcentajeAprobRRHH(idTestGenerado);
		}
	
	  public List<IdentificacionParticipante> getTestGenerados(Number idTest,Integer filtroSoloEvaluados) {
		    return this.diagnosticoDAO.getTestGenerados(idTest,filtroSoloEvaluados);
		  }
	@Override
	public Integer getTotalPreguntas(Number idTest) {
		// TODO Auto-generated method stub
		return diagnosticoDAO.getTotalPreguntas(idTest);
	}
	@Override
	public Integer getTotalRespuestasCorrectas(Number idTest) {
		// TODO Auto-generated method stub
		return diagnosticoDAO.getTotalRespuestasCorrectas(idTest);
	}
}
